package cn.edu.cdu.farmdeal.service;

import cn.edu.cdu.farmdeal.domain.Address;
import cn.edu.cdu.farmdeal.domain.CartShopPro;
import cn.edu.cdu.farmdeal.domain.Order;
import cn.edu.cdu.farmdeal.domain.UserProduct;
import cn.edu.cdu.farmdeal.utils.Page;

import java.util.List;
import java.util.Map;

/**
 * @Author: tupeng
 * @Date: 2020/4/1
 **/
public interface OrderService {
    int confirmReceipt(int id);

    List<UserProduct> getUserPro();

    Order saveOrderInfo(Map<String,Object> map);

    int getTotalCount(String username, Order order,Address address);
    List<Map<String, Object>> getOrderInfo(String name, Page page, Order order, Address address);

    /**
     * 检查地址重复
     * @param userid
     * @return
     */
    Boolean checkAddress(String userid) ;
    /**
     * 修改订单状态
     * @param orderNo
     * @return
     */
    int updateOrderStatusPay(int orderNo);
    /**
     * 保存关系
     * @return
     */
    int saveUserPro(String userid,int proid);
    /**
     * 减少库存
     */
    void doStock(int miaoshaGoodsId,int buySum);
    /**
     * 添加订单
     */
    void addToOrder(Order order);

    Order getOrderInfoByOrderNo(int orderNo);
      /**
     * 获取订单
    * @param map
     * @return
     */
    Order doOrderInfo(Map<String, Object> map);
    /**
     * 通过ID获取产品
     * @param id buySum
     * @return CartShopPro
     */
    CartShopPro getProById(String id,String buySum);
    /**
     * 地址保存
     * @param map
     * @return
     */
    int saveAddress(Map<String,Object> map);

    /**
     * 地址更新
     * @param map
     * @return
     */
    int updateAddress(Map<String,Object> map);

    void doStocks(Order order);
}
